2 Laboratory performance

2.1 Load data

Load data previously compiled from the database:

all_data <- read_tsv("data/all_data.tsv") %>%
    mutate(Taxon=factor(Taxon,levels=c("Amphibian",
                                       "Reptile",
                                       "Mammal",
                                       "Bird",
                                       "Control"))) %>%
    mutate(Extraction=factor(Extraction,levels=c("ZYMO",
                                                 "DREX",
                                                 "EHEX"))) %>%
    mutate(Species=factor(Species,levels=c("Calotriton asper",
                                           "Lissotriton helveticus",
                                           "Salamandra atra",
                                           "Chalcides striatus",
                                           "Natrix astreptophora",
                                           "Podarcis muralis",
                                           "Plecotus auritus",
                                           "Sciurus carolinensis",
                                           "Trichosurus vulpecula",
                                           "Geospizopsis unicolor",
                                           "Perisoreus infaustus",
                                           "Zonotrichia capensis",
                                           "Extraction control",
                                           "Library control")))

2.2 DNA yield

Total amount of DNA extracted from the 150 ul subset of the bead-beaten sample.

all_data %>%
    select(Extraction,extract,Taxon) %>%
    group_by(Taxon,Extraction) %>%
    summarise(value = sprintf("%.0f±%.0f", mean(extract), sd(extract))) %>%
    pivot_wider(names_from = Extraction, values_from = value) %>%
    tt(caption = "Mean and standard deviation of total DNA nanograms")
tinytable_b3r8cwpe9ftynzx2uzv8
Mean and standard deviation of total DNA nanograms
Taxon ZYMO DREX EHEX
Amphibian 471±347 482±546 1733±1145
Reptile 102±68 162±128 250±171
Mammal 445±394 265±214 904±672
Bird 73±127 13±12 54±45
Control 0±0 2±3 1±0
all_data %>%
    select(Library,Species,Extraction,extract,Taxon) %>%
    unique() %>%
    ggplot(aes(x=Extraction, y=extract, color=Species, group=Extraction))+ 
        geom_boxplot(outlier.shape = NA, fill="#f4f4f4", color="#8c8c8c") + 
        geom_jitter() + 
        scale_color_manual(values=vertebrate_colors) +
        facet_grid(. ~ Taxon, scales = "free") +
        theme_minimal() +
        labs(y="DNA yield (ng)",x="Extraction method")

all_data  %>%
    filter(Taxon != "Control") %>%
    lmerTest::lmer(extract ~ Extraction + (1 | Sample) + (1 | Species), data = ., REML = FALSE) %>%
    broom.mixed::tidy() %>%
    tt()
tinytable_1tkcrx586g2ykp4toah4
effect group term estimate std.error statistic df p.value
fixed NA (Intercept) 160.36395 125.49705 1.2778304 16.14808 2.193741e-01
fixed NA ExtractionDREX -39.65796 74.42689 -0.5328445 153.24421 5.949131e-01
fixed NA ExtractionEHEX 580.62175 74.78157 7.7642359 153.30986 1.088065e-12
ran_pars Sample sd__(Intercept) 164.00812 NA NA NA NA
ran_pars Species sd__(Intercept) 374.85139 NA NA NA NA
ran_pars Residual sd__Observation 400.80106 NA NA NA NA

DNA yields vary across host taxa. - Amphibians and mammals yield the highest total amounts of DNA. - Birds yield the lowest amounts of DNA. - Controls yield barely quantifiable DNA. EHEX yields highest amounts of total DNA. - DNA recovery raks of extraction methods are maintained across taxa.

2.3 Library performance

Number of PCR cycles required for reaching the plateau phase of the indexing PCR. A higher number indicates a lower amount of amplifiable library template. When weighed by the input DNA, the required number of PCR cycles serves as an estimator of library performance.

all_data %>%
    group_by(Taxon,Extraction) %>%
    summarise(value = sprintf("%.1f±%.1f", mean(pcr), sd(pcr))) %>%
    pivot_wider(names_from = Extraction, values_from = value) %>%
    tt(caption = "Mean and standard deviation of optimal number of PCR cycles")
tinytable_m8jxwpsfyccjgns3esk3
Mean and standard deviation of optimal number of PCR cycles
Taxon ZYMO DREX EHEX
Amphibian 14.3±1.6 10.7±2.9 10.7±2.3
Reptile 11.7±4.0 10.3±3.5 12.0±3.3
Mammal 11.1±3.5 9.9±1.9 10.0±2.1
Bird 17.6±2.8 18.7±4.3 14.4±2.3
Control 20.0±2.8 19.8±0.5 22.0±4.2
all_data %>%
    select(Library,Species,Extraction,pcr,Taxon) %>%
    unique() %>%
    ggplot(aes(x=Extraction,y=pcr, color=Species, group=Extraction))+ 
        scale_y_reverse() +
        geom_boxplot(outlier.shape = NA, fill="#f4f4f4", color="#8c8c8c") + 
        geom_jitter() + 
        scale_color_manual(values=vertebrate_colors) +
        facet_grid(. ~ Taxon, scales = "free") +
        theme_minimal() +
        labs(y="Optimal number of PCR cycles",x="Extraction method")

all_data  %>%
    filter(Taxon != "Control") %>%
    lmerTest::lmer(pcr ~ Extraction + (1 | Sample) + (1 | Species), data = ., REML = FALSE) %>%
    broom.mixed::tidy() %>%
    tt()
tinytable_zmthpum231dnw1miic5u
effect group term estimate std.error statistic df p.value
fixed NA (Intercept) 13.862035 0.8648942 16.027435 14.90821 8.328452e-11
fixed NA ExtractionDREX -1.568966 0.5106532 -3.072468 150.76244 2.519836e-03
fixed NA ExtractionEHEX -2.091261 0.5130831 -4.075872 150.84234 7.389947e-05
ran_pars Sample sd__(Intercept) 1.068964 NA NA NA NA
ran_pars Species sd__(Intercept) 2.599229 NA NA NA NA
ran_pars Residual sd__Observation 2.749952 NA NA NA NA